package util;

import org.springframework.util.Assert;

import java.time.LocalDate;
import java.time.Period;
import java.time.format.DateTimeFormatter;

/**
 * 日期工具类
 *
 * @author tianbl
 * @date 2019/5/13
 */
public class LocalDateUtil {

    /**
     * 日期格式pattern  样式为: 20190726
     */
    private static final String  YYYY_MM_DD = "yyyyMMdd";

    /**
     * 获取当前的日期
     * @return
     */
    public static LocalDate getCurrentDate() {
        return LocalDate.now(util.ZoneUtil.LOCAL_ZONE_ID);
    }

    /**
     * 计算两个日期相差的天数
     *
     * @param start
     * @param end
     * @return
     */
    public static int daysBetween(LocalDate start, LocalDate end) {
        Assert.notNull(start, "开始日期不能为null");
        Assert.notNull(end, "结束日期不能为null");
        Period period = Period.between(start, end);
        return period.getDays();
    }

    /**
     * 获取前一天的日期
     * @return 前一天
     */
    public static String getBeforeDate(){
        return getCurrentDate().minusDays(1).format(DateTimeFormatter.ofPattern(YYYY_MM_DD));
    }

    /**
     * 获取后一天的日期
     * @return 后一天
     */
    public static String getAfterDate(){
        return getCurrentDate().plusDays(1).format(DateTimeFormatter.ofPattern(YYYY_MM_DD));
    }

}
